{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_nsgaii:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## NSGA-II"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "from jmetal.algorithm.multiobjective.nsgaii import NSGAII\n",
    "from jmetal.operator import SBXCrossover, PolynomialMutation\n",
    "from jmetal.problem import ZDT1\n",
    "from jmetal.util.termination_criterion import StoppingByEvaluations\n",
    "\n",
    "problem = ZDT1()\n",
    "\n",
    "max_evaluations = 25000\n",
    "\n",
    "algorithm = NSGAII(\n",
    "    problem=problem,\n",
    "    population_size=100,\n",
    "    offspring_population_size=100,\n",
    "    mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),\n",
    "    crossover=SBXCrossover(probability=1.0, distribution_index=20),\n",
    "    termination_criterion=StoppingByEvaluations(max=max_evaluations)\n",
    ")\n",
    "\n",
    "algorithm.run()\n",
    "solutions = algorithm.get_result()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now visualize the Pareto front approximation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": true,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from jmetal.lab.visualization.plotting import Plot\n",
    "from jmetal.util.solution import get_non_dominated_solutions\n",
    "\n",
    "front = get_non_dominated_solutions(solutions)\n",
    "\n",
    "plot_front = Plot(plot_title='Pareto front approximation', axis_labels=['x', 'y'])\n",
    "plot_front.plot(front, label='NSGAII-ZDT1')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### API"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%% raw\n"
    },
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. autoclass:: jmetal.algorithm.multiobjective.nsgaii.NSGAII\n",
    "   :members:\n",
    "   :undoc-members:\n",
    "   :show-inheritance:\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "metadata": {
     "collapsed": false
    },
    "source": []
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
